<?php

require_once("OpenDocText.class.php" );	

class ArchivosOdt extends CombinadorFactory {
	private $odt;
	public function ArchivosOdt($enlaceArchivo){
		parent::CombinadorFactory();
		$this->enlaceArchivo=$enlaceArchivo;
		
	}
	public function generarArchivoInsumo($campos){
		global  $ruta_raiz;
		if (!$campos || ! is_array($campos) || count($campos)<3) 
			 	throw new Exception("no hay campos para el Insumo o son insuficientes");
		 foreach ($campos as $clave=>$valor){
					$this->valores[]=str_replace(array("<",">"),array("'","'") ,$valor);
		 			$this->variables[]=$clave;
		 		}
	}
	
	protected function combinar(){
				global $ruta_raiz;
			
				$this->setArchivoCombinar();
				$this->odt = new OpenDocText();
				$this->odt->setDebugMode(true);
				$accion = false;
				//Se carga el archivo odt Original 
				$archivoACargar = $this->enlaceArchivo;
				$nombreArchivo=substr($this->enlaceArchivo,strrpos($this->enlaceArchivo,"/")+1);
				$this->odt->cargarOdt( $archivoACargar, $nombreArchivo );
				$this->odt->setWorkDir($ruta_raiz.$this->cache);
				$accion = $this->odt->abrirOdt();
				if(!$accion)
					throw  new Exception("Problemas en el servidor abriendo archivo ODT para combinacion".
					$this->odt->getLog());
				$this->odt->cargarContenido();
				$this->odt->setVariable($this->variables, $this->valores);
		 	}
	protected function salvar(){
			
			$tipoUnitario = '1';
			
			$linkarchivo_grabar=substr($this->enlaceArchivo,strpos($this->enlaceArchivo,"bodega"));
			if($this->vistaPrevia){
					$linkarchivo_grabar = str_replace("bodega/","",$this->enlaceTemporal);
					
			 	 	$linkarchivo_grabar = str_replace("./","",$linkarchivo_grabar);	
			 	 	$archivoDefinitivo = $this->odt->salvarCambios( null, $linkarchivo_grabar, '1' );
			 	 	
			 	}else {
				
					$this->odt->salvarCambios( null,$linkarchivo_grabar, '1' );
					$archivoDefinitivo=$this->enlaceArchivo;	
				}
			 	 $this->odt->borrar();
			return $linkarchivo_grabar;
			
			
	}	
}	
?>		